package com.rolerealm.service;

import com.rolerealm.domain.vo.SkillVO;
import com.rolerealm.domain.dto.SkillDTOs.SkillExecuteRequest;
import com.rolerealm.domain.dto.SkillDTOs.SkillExecuteResponse;

import java.util.List;

/**
 * 技能服务接口
 * 
 * @author RoleRealm Team
 * @version 1.0.0
 */
public interface SkillService {

    /**
     * 获取所有技能列表
     * 
     * @return 技能列表
     */
    List<SkillVO> getAllSkills();

    /**
     * 根据技能类型获取技能列表
     * 
     * @param skillType 技能类型
     * @return 技能列表
     */
    List<SkillVO> getSkillsByType(String skillType);

    /**
     * 根据技能代码获取技能详情
     * 
     * @param skillCode 技能代码
     * @return 技能详情
     */
    SkillVO getSkillByCode(String skillCode);

    /**
     * 获取启用的技能列表
     * 
     * @return 技能列表
     */
    List<SkillVO> getEnabledSkills();

    /**
     * 根据标签获取技能列表
     * 
     * @param tag 标签
     * @return 技能列表
     */
    List<SkillVO> getSkillsByTag(String tag);

    /**
     * 执行指定技能
     * @param skillType 技能类型（qa/lang/creative）
     * @param request 输入
     * @return 执行结果
     */
    SkillExecuteResponse execute(String skillType, SkillExecuteRequest request);
}
